// 将一个正整数分解质因数
#include <stdio.h>
int decompose(int p);   // 返回最小除数
int main(int argc, char *argv[])
{
    int num = 0;
    printf("请输入一个正数:");  // 人机交互
    scanf("%d", &num);         // 键盘输入
    int temp = num;
    int arr[40] = {0};  // 最小除数 缓冲区
    for(int i = 0; i < 40; i++)
    {
        arr[i] = decompose(temp);
        if(arr[i] == 1 && i == 0)
        {
            printf("%d=%d*%d\n", num, arr[i], num);
            break;
        }
        else if(arr[i] == 1 && i != 0)
        {
            printf("%d=", num);
            for(int j = 0; j < i; j++)
            {
                printf("%d*", arr[j]);
            }
            printf("%d\n", temp);
            break;
        }
        else
        {
            temp /= arr[i];
        }
    }
    return 0;
}
int decompose(int p)
{
    int i = 2;
    int lim = p / 2;
    for(i = 2; i < lim; i++)
    {
        if((p % i) == 0)
        {
            return i;
        }
    }
    return 1;
}